// 全局的混入内容

export default {
	data(){
		return {}
	},
	methods:{
		// 权限拦截校验的方法
		// url 跳转地址; needLogin是否需要登录；isSwitch是否为tabBar界面 
		goUrl(url,needLogin=false,isSwitch=false){
			// 如果需要登录我们就判断
			if(needLogin){
				const token = uni.getStorageSync('token')
				if(!token){
					// 没有，就提示
					return uni.showToast({
						title:'请登录',
						icon:'none'
					})
				}
			}
			// 跳转，判断是否为tabBar界面
			if(isSwitch){
				uni.switchTab({ url })
			}else{
				uni.navigateTo({ url })
			}
			
		},
		// 微信支付的方法
		async weixinPay(orderId){
			// 1. 发起预请求，提交订单ID给后端，后端会返回支付所需要的相关加密参数
			let { pay_data } =  await uni.$http.get('/pay/preWeixinPay',{ params:{ orderId } })
			// pay_data就是支付所需要的相关加密参数。
			// 2. 调用 uni.requestPayment() 方法。 如果是原生微信小程序调用 wx.requestPayment
			// uni.requestPayment 是uniApp封装的一个支付方法，他还是实现支付宝支付、微信支付、H5网页支付、网银支付
			// 查阅文档：https://uniapp.dcloud.net.cn/api/plugins/payment.html#requestpayment
			// uni.requestPayment会唤醒你的微信支付，让你输入密码，输入结束之后成功就走success，失败就走fail
			uni.requestPayment({
				provider:'wxpay',
				timeStamp:pay_data.timeStamp,
				nonceStr:pay_data.nonceStr,
				package:pay_data.package,
				signType:pay_data.signType,
				paySign:pay_data.paySign,
				success:res=>{
					// 支付成功刘走这里
					// 3. 支付成功，有时候我们还会再想我们的后端发送一个请求，确认订单状态来对应支付成功。 【确认请求】
					uni.redirectTo({
						url: '/pkgOrder/payOnlineResult/payOnlineResult?status=1&order_id='+orderId,
					})
				},
				fail:err=>{
					// 支付失败就走这里
					uni.redirectTo({
						url: '/pkgOrder/payOnlineResult/payOnlineResult?status=0&order_id='+orderId,
					})
				}
			})
		}
	}
}